package ua.kiev.tosik.price.gui.tools;

import org.apache.log4j.Logger;

import java.awt.*;
import java.awt.datatransfer.*;
import java.io.IOException;

public class ClipboardTools implements ClipboardOwner {

	private static Logger logger = Logger.getLogger("ua.kiev.tosik.price.gui.tools");

	@Override
	public void lostOwnership(Clipboard clipboard, Transferable contents) {

	}

	/**
	 * Place a String on the clipboard, and make this class the
	 * owner of the Clipboard's contents.
	 *
	 * @param aString String for copy to clipboard
	 */
	public void setClipboardContents(String aString) {
		StringSelection stringSelection = new StringSelection(aString);
		Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
		clipboard.setContents(stringSelection, this);
	}

	/**
	 * Get the String residing on the clipboard.
	 *
	 * @return any text found on the Clipboard; if none found, return an empty String.
	 */
	public String getClipboardContents() {
		String result = "";
		Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
		//odd: the Object param of getContents is not currently used
		Transferable contents = clipboard.getContents(null);
		boolean hasTransferableText = (contents != null) && contents.isDataFlavorSupported(DataFlavor.stringFlavor);
		if (hasTransferableText) {
			try {
				result = (String) contents.getTransferData(DataFlavor.stringFlavor);
			} catch (UnsupportedFlavorException ex) {
				logger.warn(ex.getMessage(), ex);
			} catch (IOException ex) {
				logger.warn(ex.getMessage(), ex);
			}
		}
		return result;
	}

}